home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1994 / MacHack 1994.toast / MacHack™94 / Hacks / [√] May be freely distributed / Christopher Evans / SF ClickOut / Source / SF ClickOut.h < prev    next >
Encoding:
Text File  |  1994-06-25  |  5.8 KB  |  293 lines  |  [TEXT/KAHL]

  1. // 
  2. //    InitApplicationPatch -- Example of a head-off patch.
  3. //
  4. #include <GenericPatch.h>
  5. #pragma once
  6.  
  7. class InitApplicationPatch : public GenericPatch {
  8. public:
  9.     InitApplicationPatch();
  10.     ~InitApplicationPatch();
  11.     void ReadPrefs(void);
  12.     virtual void Behavior(void);
  13.  
  14. public:
  15.     Boolean    doBail;
  16.     Boolean showCurs;
  17.     short    bailTime;
  18.     OSType    *noBails;
  19.     short numNoBails;
  20.     long    sysV;
  21.     CursPtr    curs1;
  22.     CursPtr    curs2;
  23.     Handle    aRes;
  24. };
  25.  
  26. class MenuKeyPatch : public GenericPatch {
  27. public:
  28.     MenuKeyPatch();
  29.     ~MenuKeyPatch();
  30.     virtual void Behavior(void);
  31.  
  32. public:
  33.     InitApplicationPatch *IAPatch;
  34. };
  35.  
  36.  
  37. #pragma mark Pack3Patch Declaration
  38.  
  39. class Pack3Patch : public GenericPatch {
  40. public:
  41.     Pack3Patch();
  42.     ~Pack3Patch();
  43.     virtual void Behavior(void);
  44.     void SetDirectory(long    dirID, short vRefNum);
  45.     
  46. public:
  47.     long    nextDirID;
  48.     short    nextVRefNum;
  49.     ProcPtr    oldFilter;
  50.     void     *theirDataPtr;
  51.     StandardFileReply *replyPtr;
  52.     FileFilterProcPtr    oldFileFilter;
  53. };
  54.  
  55.  
  56.  
  57. struct Pack3Parameters {
  58.     short     itsMethod;
  59.     Ptr     itsParameters;
  60. };
  61.  
  62. typedef struct Pack3Parameters Pack3Parameters;
  63. typedef pascal void (*Pack3ProcPtr) (Pack3Parameters *params);
  64.  
  65.  
  66. #pragma mark SFPutParameters Declaration
  67. struct SFPutParameters {
  68.     short     itsMethod;
  69.     SFReply    *reply;
  70.     ProcPtr    dlgHook;
  71.     StringPtr    origName;
  72.     StringPtr    prompt;
  73.     Point    where;
  74. };
  75.  
  76.  
  77. typedef struct SFPutParameters SFPutParameters;
  78.  
  79. #pragma mark SFPPutParameters Declaration
  80. struct SFPPutParameters {
  81.     short     itsMethod;
  82.     short    dlogID;
  83.     ProcPtr    dlgEvtFilter;
  84.     SFReply    *reply;
  85.     ProcPtr    dlgHook;
  86.     StringPtr    origName;
  87.     StringPtr    prompt;
  88.     Point    where;
  89. };
  90.  
  91. typedef struct SFPPutParameters SFPPutParameters;
  92.  
  93.  
  94. #pragma mark SFGetParameters Declaration
  95. struct SFGetParameters {
  96.     short     itsMethod;
  97.     SFReply    *reply;
  98.     ProcPtr    dlgHook;
  99.     SFTypeList    *typeList;
  100.     short    numTypes;
  101.     ProcPtr    fileFilter;
  102.     StringPtr    prompt;
  103.     Point    where;
  104. };
  105.  
  106. typedef struct SFGetParameters SFGetParameters;
  107.  
  108. #pragma mark SFPGetParameters Declaration
  109.  
  110. struct SFPGetParameters {
  111.     short     itsMethod;
  112.     ProcPtr    dlgEvtFilter;
  113.     short    dlogID;
  114.     SFReply    *reply;
  115.     ProcPtr    dlgHook;
  116.     SFTypeList    *typeList;
  117.     short    numTypes;
  118.     ProcPtr    fileFilter;
  119.     StringPtr    prompt;
  120.     Point    where;
  121.  
  122. };
  123.  
  124. typedef struct SFPGetParameters SFPGetParameters;
  125.  
  126.  
  127. #pragma mark StandardPutParameters Declaration
  128. struct StandardPutParameters {
  129.     short                 itsMethod;
  130.     StandardFileReply    *reply;
  131.     StringPtr            defaultName;
  132.     StringPtr            prompt;            
  133. };
  134.  
  135. typedef struct StandardPutParameters StandardPutParameters;
  136.  
  137.  
  138. #pragma mark StandardGetParameters Declaration
  139. struct StandardGetParameters {
  140.     short                 itsMethod;
  141.     StandardFileReply    *reply;
  142.     SFTypeList            *typeList;
  143.     short                numTypes;    
  144.     FileFilterProcPtr    fileFilter;        
  145. };
  146.  
  147. typedef struct StandardGetParameters StandardGetParameters;
  148.  
  149.  
  150. #pragma mark CustomPutParameters Declaration
  151.  
  152. struct CustomPutParameters {
  153.     short                 itsMethod;
  154.     void                *yourDataPtr;
  155.     ActivateYDProcPtr    activateProc;
  156.     short                *activeList;
  157.     ModalFilterYDProcPtr    filterProc;
  158.     DlgHookYDProcPtr    dlgHook;
  159.     Point                where;
  160.     short                dlogID;
  161.     StandardFileReply    *reply;
  162.     StringPtr            defaultName;
  163.     StringPtr            prompt;            
  164. };
  165.  
  166. typedef struct CustomPutParameters CustomPutParameters;
  167.  
  168. typedef pascal void (*CustomPutPack3ProcPtr) ( 
  169.     StringPtr            prompt,
  170.     StringPtr            defaultName,
  171.     StandardFileReply    *reply,
  172.     short                dlogID,
  173.     Point                where,
  174.     DlgHookYDProcPtr    dlgHook,
  175.     ModalFilterYDProcPtr    filterProc,
  176.     short                *activeList,
  177.     ActivateYDProcPtr    activateProc,
  178.     void                *yourDataPtr,
  179.     short                method
  180.                         );
  181.  
  182. /*
  183. typedef pascal void (*CustomGetPack3ProcPtr) ( 
  184.     FileFilterYDProcPtr    fileFilter,
  185.     short                numTypes,
  186.     SFTypeList            *typeList,
  187.     StandardFileReply    *reply,
  188.     short                dlogID,
  189.     Point                where,
  190.     DlgHookYDProcPtr    dlgHook,
  191.     ModalFilterYDProcPtr    filterProc,
  192.     short                *activeList,
  193.     ActivateYDProcPtr    activateProc,
  194.     void                *yourDataPtr,
  195.     short                method );
  196. */
  197.  
  198. typedef pascal void (*CustomGetPack3ProcPtr) (
  199.             FileFilterYDUPP     fileFilter, 
  200.             short                 numTypes, 
  201.             SFTypeList             *typeList, 
  202.             StandardFileReply     *reply, 
  203.             short                 dlgID, 
  204.             Point                 where, 
  205.             DlgHookYDUPP         dlgHook, 
  206.             ModalFilterYDUPP     filterProc, 
  207.             short                 *activeList, 
  208.             ActivateYDUPP         activate, 
  209.             void                 *yourDataPtr,
  210.             short                method);
  211.  
  212. #pragma mark CustomGetParameters Declaration
  213. struct CustomGetParameters {
  214.     short                 itsMethod;
  215.     void                *yourDataPtr;
  216.     ActivateYDProcPtr    activateProc;
  217.     short                *activeList;
  218.     ModalFilterYDProcPtr    filterProc;
  219.     DlgHookYDProcPtr    dlgHook;
  220.     Point                where;
  221.     short                dlogID;
  222.     StandardFileReply    *reply;
  223.     SFTypeList            *typeList;
  224.     short                numTypes;
  225.     FileFilterYDProcPtr    fileFilter;
  226.  
  227. };
  228.  
  229. typedef struct CustomGetParameters CustomGetParameters;
  230.  
  231.  
  232. #pragma mark SystemEventPatch Declaration
  233. //
  234. //    SystemEventPatch -- Example of a head-off patch.
  235. //
  236.  
  237. class SystemEventPatch : public GenericPatch {
  238. public:
  239.     SystemEventPatch();
  240.     virtual void Behavior(void);
  241.  
  242.     WindowPtr    frontFinderWindow;
  243.     Str32        finderName;
  244.     Pack3Patch    *pack3Patch;
  245. };
  246.  
  247. struct SystemEventParameters {
  248.     EventRecord *theEvt;
  249.     Boolean        result;
  250. };
  251.  
  252. typedef struct SystemEventParameters SystemEventParameters;
  253.  
  254. #pragma mark BringToFront Declaration
  255. class BringToFrontPatch : public GenericPatch {
  256. public:
  257.     BringToFrontPatch();
  258.     ~BringToFrontPatch();
  259.     virtual void Behavior(void);
  260.     
  261. public:
  262.     Str32        finderName;
  263.     SystemEventPatch    *eventPatch;
  264. };
  265.  
  266. struct BringToFrontParameters {
  267.     WindowPtr     itsWindow;
  268. };
  269.  
  270. typedef struct BringToFrontParameters BringToFrontParameters; 
  271. #pragma mark CloseWindowDeclaration
  272. class CloseWindowPatch : public GenericPatch {
  273. public:
  274.     CloseWindowPatch();
  275.     virtual void Behavior(void);
  276.     
  277. public:
  278.     SystemEventPatch    *eventPatch;
  279. };
  280.  
  281. typedef pascal long (*CloseWindowProcPtr) (WindowPtr);
  282.  
  283. struct CloseWindowParameters {
  284.     WindowPtr    theWindow;
  285. };
  286.  
  287. typedef struct CloseWindowParameters CloseWindowParameters;
  288.  
  289.  
  290. typedef pascal short (*dlgHookProc)(short item, DialogPtr theDialog, void *yourDataPtr);
  291. typedef pascal short (*oldDlgHookProc)(short item, DialogPtr theDialog);
  292. pascal Boolean    CustomFileFilter(ParmBlkPtr    param, void *myData);
  293.